package com.weetop.akly.utils;

import android.text.TextUtils;

import com.blankj.utilcode.util.GsonUtils;
import com.tencent.mmkv.MMKV;

public class MMKVUtils {

    /**
     * 保存用户的token
     *
     * @param token
     */
    public static void saveUserToken(String token) {
        MMKV.defaultMMKV().encode("user_token", token);
    }

    /**
     * 获取用户的token
     *
     * @return
     */
    public static String getUserToken() {
        return MMKV.defaultMMKV().decodeString("user_token", "");
    }

    /**
     * 移除用户token
     */
    public static void removeUserToken() {
        MMKV.defaultMMKV().removeValueForKey("user_token");
    }

    /**
     * 保存用户的融云token
     *
     * @param token
     */
    public static void saveRyToken(String token) {
        MMKV.defaultMMKV().encode("ry_token", token);
    }

    /**
     * 获取用户的融云token
     *
     * @return
     */
    public static String getRyToken() {
        return MMKV.defaultMMKV().decodeString("ry_token", "");
    }

    /**
     * 移除用户的融云token
     */
    public static void removeRyToken() {
        MMKV.defaultMMKV().removeValueForKey("ry_token");
    }

    /**
     * 存储String数据
     * @param key
     * @param str
     * @return
     */
    public static boolean putString(String key, String str) {
        if (TextUtils.isEmpty(str)) {
            return false;
        }
        return MMKV.defaultMMKV().encode(key, str);
    }

    /**
     * 获取存储的String数据
     * @param key
     * @param defaultValue
     * @return
     */
    public static String getString(String key, String defaultValue) {
        return MMKV.defaultMMKV().decodeString(key, defaultValue);
    }

    /**
     * 存储对象数据
     * @param key
     * @param obj
     * @return
     */
    public static boolean putObject(String key, Object obj) {
        if (obj==null) {
            return false;
        }
        return MMKV.defaultMMKV().encode(key, GsonUtils.toJson(obj));
    }

    /**
     * 获取存储对象的json字符串
     * @param key
     * @param defaultValue
     * @return
     */
    public static String getObject(String key, String defaultValue) {
        String objStr = MMKV.defaultMMKV().decodeString(key, defaultValue);
        if (TextUtils.isEmpty(objStr)){
            return "";
        }else {
            return objStr;
        }
    }

    /**
     * 移除数据
     * @param key
     */
    public static void removeByKey(String key) {
        MMKV.defaultMMKV().removeValueForKey(key);
    }

}
